using System;
using System.Collections.Generic;
using System.Text;
using System.Data.SqlClient;

namespace Avon
{
    /// <summary>
    /// a katalogusData
    /// </summary>
    public struct KatalogusData
    {
        int m_KatalogusID;
        int m_KatalogusSzama;
        string m_Start;
        string m_Stop;
        string m_Link;
        /// <summary>
        /// a katalogusData konstruktora, egy id val
        /// </summary>
        /// <param name="id">a katalogus id-ja</param>
        public KatalogusData(int id)
        {
            m_KatalogusID = id;
            m_KatalogusSzama = 0;
            m_Link = "";
            m_Start = "";
            m_Stop = "";
        }
        /// <summary>
        /// getterek es a setterek
        /// </summary>
        public int KatalogusID
        {
            get { return m_KatalogusID; }
            set { m_KatalogusID = value; }
        }

        public int KatalogusSzama
        {
            get { return m_KatalogusSzama; }
            set { m_KatalogusSzama = value; }
        }

        public string Start
        {
            get { return m_Start; }
            set { m_Start = value; }
        }

        public string Stop
        {
            get { return m_Stop; }
            set { m_Stop = value; }
        }
        public string Link
        {
            get { return m_Link; }
            set { m_Link = value; }
        }
    }
    /// <summary>
    /// itt szarmaztatom a KatalogusDALt a DAL bol, es megirom a kulonbozo metodusait
    /// </summary>
    public class KatalogusDAL : DAL
    {
        /// <summary>
        /// le kerem a katalogus tabla listajat es adatai
        /// </summary>
        /// <returns>katalogus listat adja vissza</returns>
        public List<KatalogusData> GetKatalogusList()
        {
            string query = "SELECT KatalogusID,KatalogusSzama,Start,Stop,Link" +
                            " FROM Katalogus";
            string error = string.Empty;

            SqlDataReader rdr = ExecuteReader(query, ref error);
            List<KatalogusData> KatalogusList = new List<KatalogusData>();
            if (error == "OK")
            {
                while (rdr.Read())
                {
                    KatalogusData item = new KatalogusData();
                    item.KatalogusID = Convert.ToInt32(rdr[0]);
                    item.KatalogusSzama = Convert.ToInt32(rdr[1]);
                    item.Start = rdr[2].ToString();
                    item.Stop = rdr[3].ToString();
                    item.Link = rdr[4].ToString();

                    KatalogusList.Add(item);
                }
            }
            CloseDataReader(rdr);
            return KatalogusList;
        }
        /// <summary>
        /// a modosit metodus, ezt fogja fol hasznalni a katalogusFormban a modosit gomb
        /// </summary>
        /// <param name="KatalogusID">a katalogus Id-ja</param>
        /// <param name="KatalogusSzama">a katalogus szama, pl 01 2010 ben, minden evre van a katalogusoknak szama</param>
        /// <param name="Start">amikortol elkezdodik egy katalogus, ettol a datumtol lehet le adni rendelest az adott katalogusbol</param>
        /// <param name="Stop">ameddig tart egy katalogus, eddig a datumig lehet le adni rendelest az adott katalogusbol</param>
        /// <param name="Link">ra mutat a katalogusra egy weboldalon. Itt meg lehet tekineteni az adott katalogust</param>
        /// <returns>vissza adja annak az SQL lekerdezesnek az erteket, amely modositja a katalogus tablat</returns>
        public string ModositKatalogus(int KatalogusID, int KatalogusSzama, string Start, string Stop, string Link)
        {
            string query = "UPDATE Katalogus" +
                            " SET KatalogusSzama = " + KatalogusSzama +
                            ", Start = '" + Start +
                            "', Stop = '" + Stop +
                            "', Link = '" + Link +
                            "' WHERE KatalogusID = " + KatalogusID;
            return ExecuteNonQuery(query);
        }
       

        /// <summary>
        /// a beszur metodus, ezt fogja fol hasznalni, a katalogus formban a beszur gomb
        /// </summary>
        /// <param name="KatalogusSzama">a katalogus szama, pl 01 2010 ben, minden evre van a katalogusoknak szama</param>
        /// <param name="Start">amikortol elkezdodik egy katalogus, ettol a datumtol lehet le adni rendelest az adott katalogusbol</param>
        /// <param name="Stop">ameddig tart egy katalogus, eddig a datumig lehet le adni rendelest az adott katalogusbol</param>
        /// <param name="Link">ra mutat a katalogusra egy weboldalon. Itt meg lehet tekineteni az adott katalogust</param>
        /// <returns>vissza adja annak az SQL lekerdezesnek az erteket, amely beszur a katalogus tablaba</returns>
        public string BeszurKatalogus(int KatalogusSzama, string Start, string Stop, string Link)
        {
            string query = "INSERT INTO Katalogus(KatalogusSzama,Start,Stop,Link)" +
                            " VALUES (" + KatalogusSzama + ",'" + Start + "','" + Stop + "','" + Link +"')";
            return ExecuteNonQuery(query);
        }
        /// <summary>
        /// a torles metodus, ezt fogja meghivni a katalogus formban a torol gomb
        /// </summary>
        /// <param name="KatalogusID">a katalogus id-ja ez alapjan fogunk torolni</param>
        /// <returns>vissza adja annak az SQL lekerdezesnek az erteket, amely kitorol egy adott katalogust a katalogus tablabol</returns>
        public string TorolKatalogus(int KatalogusID)
        {
            string query = "DELETE FROM Katalogus WHERE KatalogusID = " + KatalogusID;
            return ExecuteNonQuery(query);

        }


    }
}
